<?php
/**
 * JS_API支付demo
 * ====================================================
 * 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
 * 成功调起支付需要三个步骤：
 * 步骤1：网页授权获取用户openid
 * 步骤2：使用统一支付接口，获取prepay_id
 * 步骤3：使用jsapi调起支付
 */
defined('InShopNC') or exit('Access Invalid!');
include_once("lib/log_.php");
include_once("lib/WxPayPubHelper.php");
class wxpay {
    public function submit($param){
        $unifiedOrder = new UnifiedOrder_pub();

        //设置统一支付接口参数
        //设置必填参数
        //appid已填,商户无需重复填写
        //mch_id已填,商户无需重复填写
        //noncestr已填,商户无需重复填写
        //spbill_create_ip已填,商户无需重复填写
        //sign已填,商户无需重复填写

        //自定义订单号，此处仅作举例
        $timeStamp = time();
        $pay_sn = $param['pay_sn'];
        $wx_pay_amount = $param['order_amount'];

        //$unifiedOrder->setParameter("openid","$openid");//openid描述
        $unifiedOrder->setParameter("body","$pay_sn");//商品描述
        //$unifiedOrder->setParameter("body","$pay_sn");//商品描述
        $unifiedOrder->setParameter("out_trade_no","$pay_sn");//商户订单号
        $wx_pay_amount =  floatval($wx_pay_amount)*100;
        //$wx_pay_amount =  1;
        $unifiedOrder->setParameter("total_fee","$wx_pay_amount");//总金额
        $unifiedOrder->setParameter("notify_url",WxPayConf_pub::REDIRECT_URI);//同步通知地址
        $unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址
        //$unifiedOrder->setParameter("trade_type","JSAPI");//交易类型
        $unifiedOrder->setParameter("trade_type","APP");//交易类型

        //非必填参数，商户可根据实际情况选填
        //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号
        //$unifiedOrder->setParameter("device_info","XXXX");//设备号
        //$unifiedOrder->setParameter("attach","XXXX");//附加数据
        //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间
        //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间
        //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记
        //$unifiedOrder->setParameter("openid","XXXX");//用户标识
        //$unifiedOrder->setParameter("product_id","$pay_sn");//传入交易内部订单号

        $prepay_id = $unifiedOrder->getPrepayId();

        return $prepay_id;
    }
}